#import <Foundation/Foundation.h>
#import "SEGPaytradeModel.h"

@interface SEGPaytradeManager : NSObject
#pragma mark - SINGLE----BEGIN----
+(instancetype)sharedManager;//创建单例
+(void)destroyResource;//销毁单例
#pragma mark - SINGLE----END----

#pragma mark - HTTP----BEGIN----
/**
 月卡缴费支付（有轮询）
 
 @author Sam
 */
-(void)requestPaytradeForPaymentPollByPaymenetResultWithRequestId:(NSString*)requestId
                                                          payeeId:(NSString*)payeeId
                                                         finished:(void(^)(BOOL isSuccessed,id result,NSString* codeType,NSString* errorMessage))finished;

/**
 提交购物支付信息
 @see 暂时没有被用到别的地方[20200616]

 @author Sam
 */
-(void)requestPaytradeForSubmitOrderPayWithPayMethod:(NSString*)payMethod
                                             orderId:(NSString*)orderId
                                             payeeId:(NSString*)payeeId
                                            finished:(void(^)(BOOL isSuccessed,id result,NSString* codeType,NSString* errorMessage))finished;

/**
 临卡缴费
 
 @author Sam
 */
-(void)requestPaytradeForTemporaryCardPaymentNoCalculateChargeWithPayMethod:(NSString*)payMethod
                                                                   finished:(void(^)(BOOL isSuccessed,id result,NSString* codeType,NSString* errorMessage))finished;

/**
 月卡缴费-不计算差
 
 @author Sam
 */
-(void)requestPaytradeForMonthCardPaymentNoCalculateChargeWithPayMethod:(NSString*)payMethod
                                                               finished:(void(^)(BOOL isSuccessed,id result,NSString* codeType,NSString* errorMessage))finished;

/**
 侨城汇订单支付
 @see 暂时没有被用到别的地方[20200616]
 
 @author Sam
 */
-(void)requestPaytradeForThirdOrderPayWithOrderId:(NSString*)orderId
                                        payMethod:(NSString*)payMethod
                                         finished:(void(^)(BOOL isSuccessed,id result,NSString* codeType,NSString* errorMessage))finished;

/**
 自助洗车订单支付
 
 @author Sam
 */
-(void)requestPaytradeForFlashboxOrderPayWithOrderSid:(NSString*)orderSid
                                            payMethod:(NSString*)payMethod
                                             finished:(void(^)(BOOL isSuccessed,id result,NSString* codeType,NSString* errorMessage))finished;

/**
 物业服务提交支付订单
 
 @author Sam
 */
-(void)requestPaytradeForServicePayOrderWithPpayMethod:(NSString*)payMethod
                                        serviceOrderId:(NSString*)serviceOrderId
                                               organId:(NSString*)organId
                                              finished:(void(^)(BOOL isSuccessed,id result,NSString* codeType,NSString* errorMessage))finished;

/**
 费用缴纳账单支付
 
 @author Sam
 */
-(void)requestPaytradeForBillPaymentWithCustId:(NSString*)custId
                                     payAmount:(NSString*)payAmount
                                  disRuleIdStr:(NSString*)disRuleIdStr
                                    billAmount:(NSString*)billAmount
                                   acctItemIds:(NSString*)acctItemIds
                                       houseId:(NSString*)houseId
                                     payMethod:(NSString*)payMethod
                                      custType:(NSString*)custType
                                     disAmount:(NSString*)disAmount
                                      finished:(void(^)(BOOL isSuccessed,id result,NSString* codeType,NSString* errorMessage))finished;

/**
 月卡缴费提交支付订单
 
 @author Sam
 @param payMethod 支付方式
 @param parkingPayField REDIS 缓存FIELD
 @param cycleLength 缴存周期数
 @param newExpDate 缴费后的失效时间
 @param paymentFee 优惠后的金额
 @param cardtype 卡类型。1 月卡， 2 季卡 3 半年卡，4 年卡，5 vip卡
 */
-(void)requestConfirmpaymentchargeWithPaymethod:(NSString*)payMethod
                                parkingPayField:(NSString*)parkingPayField
                                    cycleLength:(NSString*)cycleLength
                                     newExpDate:(NSString*)newExpDate
                                     paymentFee:(NSString*)paymentFee
                                       cardtype:(NSString*)cardtype
                                       finished:(void(^)(BOOL isSuccessed,id result,NSString* codeType,NSString* errorMessage))finished;
#pragma mark - HTTP----END----

#pragma mark - SOURCE----BEGIN----
@property (nonatomic, strong) SEGPaytradeModel *payTrade;
#pragma mark - SOURCE----END----
@end
